package com.cjj.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.cjj.dao.entity.ServiceOrder;
import com.cjj.dto.req.*;

import java.util.List;

/**
 * <p>
 * 订单表 服务类
 * </p>
 *
 * @author admin
 * @since 2025-10-25
 */
public interface ServiceOrderService extends IService<ServiceOrder> {

    IPage<ServiceOrder> getPendingReviewOrders(Integer pageNum, Integer pageSize);

    CreateServiceOrderDTO createOrder(CreateServiceOrderDTO createServiceOrderDTO);

    IPage<ServiceOrder> getOrder(Integer pageNum, Integer pageSize,GetOrderReqDTO getOrderReqDTO);

    void approveOrder(Long orderId);

    void rejectOrder(RejectOrderReqDTO rejectOrderReqDTO);

    void batchApproveOrders(BatchApproveReqDTO batchApproveReqDTO);

    void batchRejectOrders(BatchRejectReqDTO batchRejectReqDTO);

    List<Long> selectReviewedRunnerOrder();

    void acceptOrder(Long orderId);

    void completedOrder(Long orderId);

    void canceledOrder(CanceledOrderReqDTO canceledOrderReqDTO);

    void purchaseOrder(PurchaseOrderReqDTO purchaseOrderReqDTO);

    IPage<ServiceOrder> getPurchaseOrders(Integer pageNum, Integer pageSize,GetPurchaseOrderReqDto getPurchaseOrderReqDto);
}
